﻿Imports System.Data.SqlClient
Imports UTNComputers.clsEstado_Os
Public Class daoEstado_Os
    'Funcion para Traer un Estado de Orden de Servicio por Id'
    Public Function TraeEstadoOrdenServicio(ByVal estadoOs_id As Integer) As clsEstado_Os
        Dim Cn As New SqlClient.SqlConnection
        Dim Cm As New SqlClient.SqlCommand
        Dim Dr As SqlClient.SqlDataReader
        Dim Estado_Os As New clsEstado_Os()

        Try
            Cn.ConnectionString = My.Resources.Conexion
            Cn.Open()
            Cm.CommandType = CommandType.StoredProcedure
            Cm.CommandText = "SP_TRAER_ESTADO_OS"

            Cm.Parameters.Add("@estadoOs_id", SqlDbType.Int)
            Cm.Parameters("@estadoOs_id").Value = estadoOs_id

            Cm.Connection = Cn
            Dr = Cm.ExecuteReader
            If Dr.HasRows = True Then
                While Dr.Read
                    Estado_Os.EstadoOs_Id = Dr.GetInt32(0)
                    Estado_Os.EstadoOs_Desc = Dr.GetString(1).Trim.ToUpper
                End While

                Dr.Close()
                Cn.Close()
            End If
            Return Estado_Os
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            Cn.Dispose()
            Cm.Dispose()
        End Try
    End Function

    'Funcion para Traer Todos los Estados de Orden de Servicio'
    Public Function TraeEstadosOrdenServicio() As List(Of clsEstado_Os)
        Dim Cn As New SqlClient.SqlConnection
        Dim Cm As New SqlClient.SqlCommand
        Dim Dr As SqlClient.SqlDataReader
        Dim ListaEstado_Os As New List(Of clsEstado_Os)

        Try
            Cn.ConnectionString = My.Resources.Conexion
            Cn.Open()
            Cm.CommandType = CommandType.StoredProcedure
            Cm.CommandText = "SP_TRAER_ESTADOS_OS_TODOS"

            Cm.Connection = Cn
            Dr = Cm.ExecuteReader
            If Dr.HasRows = True Then
                While Dr.Read
                    Dim Estado_Os As New clsEstado_Os()
                    Estado_Os.EstadoOs_Id = Dr.GetInt32(0)
                    Estado_Os.EstadoOs_Desc = Dr.GetString(1).Trim.ToUpper
                    ListaEstado_Os.Add(Estado_Os)
                    Estado_Os.Dispose()
                End While

                Dr.Close()
                Cn.Close()
            End If
            Return ListaEstado_Os
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            Cn.Dispose()
            Cm.Dispose()
        End Try
    End Function

    'Funcion para Traer Todos los Estados de Orden de Servicio para un Tecnico'
    Public Function TraeEstadosOrdenServicioTecnico() As List(Of clsEstado_Os)
        Dim Cn As New SqlClient.SqlConnection
        Dim Cm As New SqlClient.SqlCommand
        Dim Dr As SqlClient.SqlDataReader
        Dim ListaEstado_Os As New List(Of clsEstado_Os)

        Try
            Cn.ConnectionString = My.Resources.Conexion
            Cn.Open()
            Cm.CommandType = CommandType.StoredProcedure
            Cm.CommandText = "SP_TRAER_ESTADOS_OS_TODOS_TECNICO"

            Cm.Connection = Cn
            Dr = Cm.ExecuteReader
            If Dr.HasRows = True Then
                While Dr.Read
                    Dim Estado_Os As New clsEstado_Os()
                    Estado_Os.EstadoOs_Id = Dr.GetInt32(0)
                    Estado_Os.EstadoOs_Desc = Dr.GetString(1).Trim.ToUpper
                    ListaEstado_Os.Add(Estado_Os)
                    Estado_Os.Dispose()
                End While

                Dr.Close()
                Cn.Close()
            End If
            Return ListaEstado_Os
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            Cn.Dispose()
            Cm.Dispose()
        End Try
    End Function

    'Funcion para Traer Todos los Estados de Orden de Servicio para un Vendedor'
    Public Function TraeEstadosOrdenServicioVendedor() As List(Of clsEstado_Os)
        Dim Cn As New SqlClient.SqlConnection
        Dim Cm As New SqlClient.SqlCommand
        Dim Dr As SqlClient.SqlDataReader
        Dim ListaEstado_Os As New List(Of clsEstado_Os)

        Try
            Cn.ConnectionString = My.Resources.Conexion
            Cn.Open()
            Cm.CommandType = CommandType.StoredProcedure
            Cm.CommandText = "SP_TRAER_ESTADOS_OS_TODOS_VENDEDOR"

            Cm.Connection = Cn
            Dr = Cm.ExecuteReader
            If Dr.HasRows = True Then
                While Dr.Read
                    Dim Estado_Os As New clsEstado_Os()
                    Estado_Os.EstadoOs_Id = Dr.GetInt32(0)
                    Estado_Os.EstadoOs_Desc = Dr.GetString(1).Trim.ToUpper
                    ListaEstado_Os.Add(Estado_Os)
                    Estado_Os.Dispose()
                End While

                Dr.Close()
                Cn.Close()
            End If
            Return ListaEstado_Os
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            Cn.Dispose()
            Cm.Dispose()
        End Try
    End Function

    '---------------------------------------------------------------------
    ' Constructor de la Clase
    '---------------------------------------------------------------------
    Public Sub New()

        MyBase.New()

    End Sub

    '---------------------------------------------------------------------
    ' Destructor de la Clase
    '---------------------------------------------------------------------
    Public Sub Dispose()

        MyBase.Finalize()

    End Sub

End Class
